home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / kcl / akcl / kcl.lha / lsp / defmacro.c < prev    next >
C/C++ Source or Header  |  1987-06-04  |  17KB  |  864 lines

  1.  
  2. /* (C) Copyright Taiichi Yuasa and Masami Hagiya, 1984. All rights reserved. */
  3. #include <cmpinclude.h>
  4. #include "defmacro.h"
  5. init_defmacro(start,size,data)char *start;int size;object data;
  6. {    register object *base=vs_top;register object *sup=base+VM2;vs_top=sup;vs_check;
  7.     Cstart=start;Csize=size;Cdata=data;set_VV(VV,VM1,data);
  8.     VV[0]->s.s_stype=(short)stp_special;
  9.     VV[1]->s.s_stype=(short)stp_special;
  10.     VV[2]->s.s_stype=(short)stp_special;
  11.     MF(VV[54],L1,start,size,data);
  12.     MF(VV[55],L2,start,size,data);
  13.     MF(VV[56],L3,start,size,data);
  14.     MF(VV[57],L4,start,size,data);
  15.     MF(VV[58],L5,start,size,data);
  16.     MF(VV[59],L6,start,size,data);
  17.     MF(VV[60],L7,start,size,data);
  18.     MF(VV[61],L8,start,size,data);
  19.     MF(VV[62],L9,start,size,data);
  20.     MF(VV[63],L10,start,size,data);
  21.     MF(VV[64],L11,start,size,data);
  22.     vs_top=vs_base=base;
  23. }
  24. /*    function definition for DEFMACRO*    */
  25.  
  26. static L1()
  27. {    register object *base=vs_base;
  28.     register object *sup=base+VM3;
  29.     vs_reserve(VM3);
  30.     bds_check;
  31.     check_arg(3);
  32.     vs_top=sup;
  33. TTL:;
  34.     bds_bind(VV[0],Cnil);
  35.     bds_bind(VV[1],Cnil);
  36.     bds_bind(VV[2],Cnil);
  37.     base[6]= Cnil;
  38.     base[7]= Cnil;
  39.     base[8]= Cnil;
  40.     base[9]= Cnil;
  41.     base[10]= Cnil;
  42.     base[11]= Cnil;
  43.     base[12]= (type_of(base[1])==t_cons||base[1]==Cnil?Ct:Cnil);
  44.     if((base[12])==Cnil){
  45.     goto T4;}
  46.     goto T1;
  47. T4:;
  48.     if(!(type_of(base[1])==t_symbol)){
  49.     goto T7;}
  50.     base[1]= list(2,VV[3],base[1]);
  51.     goto T1;
  52. T7:;
  53.     base[13]= VV[4];
  54.     base[14]= base[1];
  55.     vs_top=(vs_base=base+13)+2;
  56.     Lerror();
  57.     vs_top=sup;
  58. T1:;
  59.     base[12]= base[2];
  60.     base[13]= Cnil;
  61.     vs_top=(vs_base=base+12)+2;
  62.     L10();
  63.     if(vs_base<vs_top){
  64.     base[6]= vs_base[0];
  65.     vs_base++;
  66.     }else{
  67.     base[6]= Cnil;}
  68.     if(vs_base<vs_top){
  69.     base[7]= vs_base[0];
  70.     vs_base++;
  71.     }else{
  72.     base[7]= Cnil;}
  73.     if(vs_base<vs_top){
  74.     base[2]= vs_base[0];
  75.     }else{
  76.     base[2]= Cnil;}
  77.     vs_top=sup;
  78.     if(!(type_of(base[1])==t_cons||base[1]==Cnil)){
  79.     goto T18;}
  80.     if(!(car(base[1])==VV[5])){
  81.     goto T18;}
  82.     base[8]= cadr(base[1]);
  83.     base[1]= cddr(base[1]);
  84.     goto T16;
  85. T18:;
  86.     vs_base=vs_top;
  87.     Lgensym();
  88.     vs_top=sup;
  89.     base[8]= vs_base[0];
  90. T16:;
  91.     if(!(type_of(base[1])==t_cons||base[1]==Cnil)){
  92.     goto T28;}
  93.     if(!(car(base[1])==VV[6])){
  94.     goto T28;}
  95.     base[10]= cadr(base[1]);
  96.     base[1]= cddr(base[1]);
  97.     base[11]= Ct;
  98.     goto T26;
  99. T28:;
  100.     vs_base=vs_top;
  101.     Lgensym();
  102.     vs_top=sup;
  103.     base[10]= vs_base[0];
  104. T26:;
  105.     (VV[0]->s.s_dbind)= list(3,VV[7],base[10],base[8]);
  106.     base[12]= base[1];
  107.     base[13]= base[8];
  108.     base[14]= Ct;
  109.     vs_top=(vs_base=base+12)+3;
  110.     L2();
  111.     vs_top=sup;
  112.     base[9]= vs_base[0];
  113.     base[12]= (VV[1]->s.s_dbind);
  114.     base[13]= car(base[12]);
  115. T48:;
  116.     if(!(endp(base[12]))){
  117.     goto T49;}
  118.     goto T45;
  119. T49:;
  120.     base[14]= list(3,VV[9],car(base[13]),VV[10]);
  121.     base[15]= list(3,VV[12],car(base[13]),VV[13]);
  122.     base[16]= make_cons(base[15],Cnil);
  123.     base[17]= list(2,VV[17],cdr(base[13]));
  124.     base[18]= list(3,VV[15],VV[16],base[17]);
  125.     base[19]= list(3,VV[8],base[18],VV[18]);
  126.     base[20]= list(4,VV[11],base[16],VV[14],base[19]);
  127.     base[21]= list(3,VV[8],base[14],base[20]);
  128.     base[2]= make_cons(base[21],base[2]);
  129.     base[12]= cdr(base[12]);
  130.     base[13]= car(base[12]);
  131.     goto T48;
  132. T45:;
  133.     base[12]= (VV[2]->s.s_dbind);
  134.     base[13]= car(base[12]);
  135. T63:;
  136.     if(!(endp(base[12]))){
  137.     goto T64;}
  138.     goto T60;
  139. T64:;
  140.     base[15]= cdr(base[13]);
  141.     base[16]= car(base[13]);
  142.     vs_top=(vs_base=base+15)+2;
  143.     L5();
  144.     vs_top=sup;
  145.     base[14]= vs_base[0];
  146.     base[15]= list(2,VV[19],base[14]);
  147.     base[16]= list(3,VV[8],base[15],VV[20]);
  148.     base[2]= make_cons(base[16],base[2]);
  149.     base[12]= cdr(base[12]);
  150.     base[13]= car(base[12]);
  151.     goto T63;
  152. T60:;
  153.     if((base[11])!=Cnil){
  154.     goto T78;}
  155.     base[12]= list(2,VV[22],base[10]);
  156.     base[13]= list(2,VV[21],base[12]);
  157.     base[2]= make_cons(base[13],base[2]);
  158. T78:;
  159.     base[12]= reverse((VV[0]->s.s_dbind));
  160.     base[13]= append(base[7],base[2]);
  161.     base[14]= listA(4,VV[23],base[0],base[12],base[13]);
  162.     base[15]= list(3,base[6],base[9],base[14]);
  163.     vs_top=(vs_base=base+15)+1;
  164.     bds_unwind1;
  165.     bds_unwind1;
  166.     bds_unwind1;
  167.     return;
  168. }
  169. /*    function definition for DM-VL    */
  170.  
  171. static L2()
  172. {    register object *base=vs_base;
  173.     register object *sup=base+VM4;
  174.     vs_reserve(VM4);
  175.     check_arg(3);
  176.     vs_top=sup;
  177. TTL:;
  178.     if((base[2])==Cnil){
  179.     goto T84;}
  180.     base[12]= VV[24];
  181.     goto T82;
  182. T84:;
  183.     base[12]= VV[25];
  184. T82:;
  185.     base[3]= Cnil;
  186.     base[4]= Cnil;
  187.     base[5]= Cnil;
  188.     base[6]= Cnil;
  189.     base[7]= Cnil;
  190.     base[8]= Cnil;
  191.     base[9]= Cnil;
  192.     base[10]= Cnil;
  193.     base[11]= Cnil;
  194.     base[13]= Cnil;
  195. T87:;
  196.     if(type_of(base[0])==t_cons){
  197.     goto T88;}
  198.     if((base[0])==Cnil){
  199.     goto T91;}
  200.     if((base[4])==Cnil){
  201.     goto T94;}
  202.     base[14]= VV[3];
  203.     vs_top=(vs_base=base+14)+1;
  204.     L6();
  205.     vs_top=sup;
  206. T94:;
  207.     base[15]= base[12];
  208.     base[16]= base[1];
  209.     vs_top=(vs_base=base+15)+2;
  210.     L5();
  211.     vs_top=sup;
  212.     base[14]= vs_base[0];
  213.     base[15]= list(2,base[0],base[14]);
  214.     setq(VV[0],make_cons(base[15],symbol_value(VV[0])));
  215.     base[11]= Ct;
  216. T91:;
  217.     if((base[8])==Cnil){
  218.     goto T104;}
  219.     if((base[9])!=Cnil){
  220.     goto T104;}
  221.     base[14]= make_cons(base[8],base[10]);
  222.     setq(VV[1],make_cons(base[14],symbol_value(VV[1])));
  223. T104:;
  224.     if((base[11])!=Cnil){
  225.     goto T110;}
  226.     base[14]= make_cons(base[1],base[12]);
  227.     setq(VV[2],make_cons(base[14],symbol_value(VV[2])));
  228. T110:;
  229.     vs_top=(vs_base=base+13)+1;
  230.     return;
  231. T88:;
  232.     base[14]= car(base[0]);
  233.     if(!(base[14]==VV[26])){
  234.     goto T118;}
  235.     if((base[3])==Cnil){
  236.     goto T120;}
  237.     base[15]= VV[26];
  238.     vs_top=(vs_base=base+15)+1;
  239.     L6();
  240.     vs_top=sup;
  241. T120:;
  242.     base[3]= Ct;
  243.     base[15]= car(base[0]);
  244.     base[0]= cdr(base[0]);
  245.     goto T115;
  246. T118:;
  247.     if(base[14]==VV[3]){
  248.     goto T129;}
  249.     if(!(base[14]==VV[27])){
  250.     goto T130;}
  251. T129:;
  252.     if((base[4])==Cnil){
  253.     goto T134;}
  254.     base[15]= base[14];
  255.     vs_top=(vs_base=base+15)+1;
  256.     L6();
  257.     vs_top=sup;
  258. T134:;
  259.     base[15]= cadr(base[0]);
  260.     base[17]= base[12];
  261.     base[18]= base[1];
  262.     vs_top=(vs_base=base+17)+2;
  263.     L5();
  264.     vs_top=sup;
  265.     base[16]= vs_base[0];
  266.     vs_top=(vs_base=base+15)+2;
  267.     L3();
  268.     vs_top=sup;
  269.     base[4]= Ct;
  270.     base[3]= Ct;
  271.     base[11]= Ct;
  272.     base[0]= cddr(base[0]);
  273.     if(!(base[14]==VV[27])){
  274.     goto T115;}
  275.     if((base[2])==Cnil){
  276.     goto T155;}
  277.     base[13]= one_minus(base[12]);
  278.     goto T153;
  279. T155:;
  280.     base[13]= base[12];
  281. T153:;
  282.     goto T115;
  283. T130:;
  284.     if(!(base[14]==VV[28])){
  285.     goto T158;}
  286.     if((base[5])==Cnil){
  287.     goto T160;}
  288.     base[15]= VV[28];
  289.     vs_top=(vs_base=base+15)+1;
  290.     L6();
  291.     vs_top=sup;
  292. T160:;
  293.     vs_base=vs_top;
  294.     Lgensym();
  295.     vs_top=sup;
  296.     base[8]= vs_base[0];
  297.     base[16]= base[12];
  298.     base[17]= base[1];
  299.     vs_top=(vs_base=base+16)+2;
  300.     L5();
  301.     vs_top=sup;
  302.     base[15]= vs_base[0];
  303.     base[16]= list(2,base[8],base[15]);
  304.     setq(VV[0],make_cons(base[16],symbol_value(VV[0])));
  305.     base[5]= Ct;
  306.     base[4]= Ct;
  307.     base[3]= Ct;
  308.     base[11]= Ct;
  309.     base[15]= car(base[0]);
  310.     base[0]= cdr(base[0]);
  311.     goto T115;
  312. T158:;
  313.     if(!(base[14]==VV[29])){
  314.     goto T183;}
  315.     if((base[5])==Cnil){
  316.     goto T186;}
  317.     if((base[6])==Cnil){
  318.     goto T185;}
  319. T186:;
  320.     base[15]= VV[29];
  321.     vs_top=(vs_base=base+15)+1;
  322.     L6();
  323.     vs_top=sup;
  324. T185:;
  325.     base[6]= Ct;
  326.     base[9]= Ct;
  327.     base[15]= car(base[0]);
  328.     base[0]= cdr(base[0]);
  329.     goto T115;
  330. T183:;
  331.     if(!(base[14]==VV[7])){
  332.     goto T199;}
  333.     if((base[7])==Cnil){
  334.     goto T201;}
  335.     base[15]= VV[7];
  336.     vs_top=(vs_base=base+15)+1;
  337.     L6();
  338.     vs_top=sup;
  339. T201:;
  340.     base[7]= Ct;
  341.     base[6]= Ct;
  342.     base[5]= Ct;
  343.     base[4]= Ct;
  344.     base[3]= Ct;
  345.     base[15]= car(base[0]);
  346.     base[0]= cdr(base[0]);
  347.     goto T115;
  348. T199:;
  349.     if((base[7])==Cnil){
  350.     goto T219;}
  351.     base[15]= Cnil;
  352.     base[16]= Cnil;
  353.     if(!(type_of(base[14])==t_symbol)){
  354.     goto T224;}
  355.     base[15]= base[14];
  356.     goto T222;
  357. T224:;
  358.     base[15]= car(base[14]);
  359.     if(endp(cdr(base[14]))){
  360.     goto T222;}
  361.     base[16]= cadr(base[14]);
  362. T222:;
  363.     base[17]= base[15];
  364.     base[18]= base[16];
  365.     vs_top=(vs_base=base+17)+2;
  366.     L3();
  367.     vs_top=sup;
  368.     base[15]= car(base[0]);
  369.     base[0]= cdr(base[0]);
  370.     goto T115;
  371. T219:;
  372.     if((base[5])==Cnil){
  373.     goto T238;}
  374.     vs_base=vs_top;
  375.     Lgensym();
  376.     vs_top=sup;
  377.     base[15]= vs_base[0];
  378.     base[16]= Cnil;
  379.     base[17]= Cnil;
  380.     base[18]= Cnil;
  381.     base[19]= Cnil;
  382.     if(!(type_of(base[14])==t_symbol)){
  383.     goto T244;}
  384.     base[16]= base[14];
  385.     base[20]= coerce_to_string(base[14]);
  386.     base[21]= VV[30];
  387.     vs_top=(vs_base=base+20)+2;
  388.     Lintern();
  389.     vs_top=sup;
  390.     base[17]= vs_base[0];
  391.     goto T242;
  392. T244:;
  393.     if(!(type_of(car(base[14]))==t_symbol)){
  394.     goto T253;}
  395.     base[16]= car(base[14]);
  396.     base[20]= coerce_to_string(car(base[14]));
  397.     base[21]= VV[30];
  398.     vs_top=(vs_base=base+20)+2;
  399.     Lintern();
  400.     vs_top=sup;
  401.     base[17]= vs_base[0];
  402.     goto T251;
  403. T253:;
  404.     base[16]= cadar(base[14]);
  405.     base[17]= caar(base[14]);
  406. T251:;
  407.     if(endp(cdr(base[14]))){
  408.     goto T242;}
  409.     base[18]= cadr(base[14]);
  410.     if(endp(cddr(base[14]))){
  411.     goto T242;}
  412.     base[19]= caddr(base[14]);
  413. T242:;
  414.     base[20]= base[15];
  415.     base[21]= list(4,VV[9],base[8],base[17],VV[31]);
  416.     vs_top=(vs_base=base+20)+2;
  417.     L3();
  418.     vs_top=sup;
  419.     base[20]= base[16];
  420.     base[22]= list(3,VV[33],base[15],VV[34]);
  421.     base[21]= list(4,VV[32],base[22],base[18],base[15]);
  422.     vs_top=(vs_base=base+20)+2;
  423.     L3();
  424.     vs_top=sup;
  425.     if((base[19])==Cnil){
  426.     goto T276;}
  427.     base[20]= base[19];
  428.     base[22]= list(3,VV[33],base[15],VV[36]);
  429.     base[21]= list(2,VV[35],base[22]);
  430.     vs_top=(vs_base=base+20)+2;
  431.     L3();
  432.     vs_top=sup;
  433. T276:;
  434.     base[10]= make_cons(base[17],base[10]);
  435.     base[15]= car(base[0]);
  436.     base[0]= cdr(base[0]);
  437.     goto T115;
  438. T238:;
  439.     if((base[3])==Cnil){
  440.     goto T286;}
  441.     base[15]= Cnil;
  442.     base[16]= Cnil;
  443.     base[17]= Cnil;
  444.     if(!(type_of(base[14])==t_symbol)){
  445.     goto T291;}
  446.     base[15]= base[14];
  447.     goto T289;
  448. T291:;
  449.     base[15]= car(base[14]);
  450.     if(endp(cdr(base[14]))){
  451.     goto T289;}
  452.     base[16]= cadr(base[14]);
  453.     if(endp(cddr(base[14]))){
  454.     goto T289;}
  455.     base[17]= caddr(base[14]);
  456. T289:;
  457.     base[18]= base[15];
  458.     base[21]= base[12];
  459.     base[22]= base[1];
  460.     vs_top=(vs_base=base+21)+2;
  461.     L5();
  462.     vs_top=sup;
  463.     base[20]= vs_base[0];
  464.     base[22]= base[12];
  465.     base[23]= base[1];
  466.     vs_top=(vs_base=base+22)+2;
  467.     L4();
  468.     vs_top=sup;
  469.     base[21]= vs_base[0];
  470.     base[19]= list(4,VV[32],base[20],base[21],base[16]);
  471.     vs_top=(vs_base=base+18)+2;
  472.     L3();
  473.     vs_top=sup;
  474.     if((base[17])==Cnil){
  475.     goto T288;}
  476.     base[18]= base[17];
  477.     base[21]= base[12];
  478.     base[22]= base[1];
  479.     vs_top=(vs_base=base+21)+2;
  480.     L5();
  481.     vs_top=sup;
  482.     base[20]= vs_base[0];
  483.     base[21]= list(2,VV[37],base[20]);
  484.     base[19]= list(2,VV[35],base[21]);
  485.     vs_top=(vs_base=base+18)+2;
  486.     L3();
  487.     vs_top=sup;
  488. T288:;
  489.     base[12]= number_plus(base[12],VV[24]);
  490.     base[15]= car(base[0]);
  491.     base[0]= cdr(base[0]);
  492.     goto T115;
  493. T286:;
  494.     base[15]= base[14];
  495.     base[18]= base[12];
  496.     base[19]= base[1];
  497.     vs_top=(vs_base=base+18)+2;
  498.     L5();
  499.     vs_top=sup;
  500.     base[17]= vs_base[0];
  501.     base[19]= base[12];
  502.     base[20]= base[1];
  503.     vs_top=(vs_base=base+19)+2;
  504.     L4();
  505.     vs_top=sup;
  506.     base[18]= vs_base[0];
  507.     base[16]= list(4,VV[32],base[17],base[18],VV[38]);
  508.     vs_top=(vs_base=base+15)+2;
  509.     L3();
  510.     vs_top=sup;
  511.     base[12]= number_plus(base[12],VV[24]);
  512.     base[15]= car(base[0]);
  513.     base[0]= cdr(base[0]);
  514. T115:;
  515.     goto T87;
  516. }
  517. /*    function definition for DM-V    */
  518.  
  519. static L3()
  520. {    register object *base=vs_base;
  521.     register object *sup=base+VM5;
  522.     vs_reserve(VM5);
  523.     check_arg(2);
  524.     vs_top=sup;
  525. TTL:;
  526.     if(!(type_of(base[0])==t_symbol)){
  527.     goto T341;}
  528.     if((base[1])==Cnil){
  529.     goto T346;}
  530.     base[2]= list(2,base[0],base[1]);
  531.     goto T344;
  532. T346:;
  533.     base[2]= base[0];
  534. T344:;
  535.     setq(VV[0],make_cons(base[2],symbol_value(VV[0])));
  536.     base[2]= symbol_value(VV[0]);
  537.     vs_top=(vs_base=base+2)+1;
  538.     return;
  539. T341:;
  540.     vs_base=vs_top;
  541.     Lgensym();
  542.     vs_top=sup;
  543.     base[2]= vs_base[0];
  544.     if((base[1])==Cnil){
  545.     goto T353;}
  546.     base[3]= list(2,base[2],base[1]);
  547.     goto T351;
  548. T353:;
  549.     base[3]= base[2];
  550. T351:;
  551.     setq(VV[0],make_cons(base[3],symbol_value(VV[0])));
  552.     base[3]= base[0];
  553.     base[4]= base[2];
  554.     base[5]= Cnil;
  555.     vs_top=(vs_base=base+3)+3;
  556.     L2();
  557.     return;
  558. }
  559. /*    function definition for DM-NTH    */
  560.  
  561. static L4()
  562. {    register object *base=vs_base;
  563.     register object *sup=base+VM6;
  564.     vs_reserve(VM6);
  565.     check_arg(2);
  566.     vs_top=sup;
  567. TTL:;
  568.     base[3]= base[0];
  569.     base[4]= VV[39];
  570.     vs_top=(vs_base=base+3)+2;
  571.     Lfloor();
  572.     Llist();
  573.     vs_top=sup;
  574.     base[2]= vs_base[0];
  575.     base[3]= car(base[2]);
  576.     base[4]= cadr(base[2]);
  577.     base[5]= VV[25];
  578. T366:;
  579.     if(!(number_compare(base[5],base[3])>=0)){
  580.     goto T367;}
  581.     goto T364;
  582. T367:;
  583.     base[1]= list(2,VV[40],base[1]);
  584.     base[5]= one_plus(base[5]);
  585.     goto T366;
  586. T364:;
  587.     {object V1= base[4];
  588.     if(!eql(V1,VV[25]))goto T376;
  589.     base[5]= list(2,VV[41],base[1]);
  590.     vs_top=(vs_base=base+5)+1;
  591.     return;
  592. T376:;
  593.     if(!eql(V1,VV[24]))goto T377;
  594.     base[5]= list(2,VV[42],base[1]);
  595.     vs_top=(vs_base=base+5)+1;
  596.     return;
  597. T377:;
  598.     if(!eql(V1,VV[43]))goto T378;
  599.     base[5]= list(2,VV[44],base[1]);
  600.     vs_top=(vs_base=base+5)+1;
  601.     return;
  602. T378:;
  603.     if(!eql(V1,VV[45]))goto T379;
  604.     base[5]= list(2,VV[46],base[1]);
  605.     vs_top=(vs_base=base+5)+1;
  606.     return;
  607. T379:;
  608.     base[5]= Cnil;
  609.     vs_top=(vs_base=base+5)+1;
  610.     return;}
  611. }
  612. /*    function definition for DM-NTH-CDR    */
  613.  
  614. static L5()
  615. {    register object *base=vs_base;
  616.     register object *sup=base+VM7;
  617.     vs_reserve(VM7);
  618.     check_arg(2);
  619.     vs_top=sup;
  620. TTL:;
  621.     base[3]= base[0];
  622.     base[4]= VV[39];
  623.     vs_top=(vs_base=base+3)+2;
  624.     Lfloor();
  625.     Llist();
  626.     vs_top=sup;
  627.     base[2]= vs_base[0];
  628.     base[3]= car(base[2]);
  629.     base[4]= cadr(base[2]);
  630.     base[5]= VV[25];
  631. T388:;
  632.     if(!(number_compare(base[5],base[3])>=0)){
  633.     goto T389;}
  634.     goto T386;
  635. T389:;
  636.     base[1]= list(2,VV[40],base[1]);
  637.     base[5]= one_plus(base[5]);
  638.     goto T388;
  639. T386:;
  640.     {object V2= base[4];
  641.     if(!eql(V2,VV[25]))goto T398;
  642.     vs_top=(vs_base=base+1)+1;
  643.     return;
  644. T398:;
  645.     if(!eql(V2,VV[24]))goto T399;
  646.     base[5]= list(2,VV[47],base[1]);
  647.     vs_top=(vs_base=base+5)+1;
  648.     return;
  649. T399:;
  650.     if(!eql(V2,VV[43]))goto T400;
  651.     base[5]= list(2,VV[48],base[1]);
  652.     vs_top=(vs_base=base+5)+1;
  653.     return;
  654. T400:;
  655.     if(!eql(V2,VV[45]))goto T401;
  656.     base[5]= list(2,VV[49],base[1]);
  657.     vs_top=(vs_base=base+5)+1;
  658.     return;
  659. T401:;
  660.     base[5]= Cnil;
  661.     vs_top=(vs_base=base+5)+1;
  662.     return;}
  663. }
  664. /*    function definition for DM-BAD-KEY    */
  665.  
  666. static L6()
  667. {    register object *base=vs_base;
  668.     register object *sup=base+VM8;
  669.     vs_reserve(VM8);
  670.     check_arg(1);
  671.     vs_top=sup;
  672. TTL:;
  673.     base[1]= VV[50];
  674.     base[2]= base[0];
  675.     vs_top=(vs_base=base+1)+2;
  676.     Lerror();
  677.     return;
  678. }
  679. /*    function definition for DM-TOO-FEW-ARGUMENTS    */
  680.  
  681. static L7()
  682. {    register object *base=vs_base;
  683.     register object *sup=base+VM9;
  684.     vs_reserve(VM9);
  685.     check_arg(0);
  686.     vs_top=sup;
  687. TTL:;
  688.     base[0]= VV[51];
  689.     vs_top=(vs_base=base+0)+1;
  690.     Lerror();
  691.     return;
  692. }
  693. /*    function definition for DM-TOO-MANY-ARGUMENTS    */
  694.  
  695. static L8()
  696. {    register object *base=vs_base;
  697.     register object *sup=base+VM10;
  698.     vs_reserve(VM10);
  699.     check_arg(0);
  700.     vs_top=sup;
  701. TTL:;
  702.     base[0]= VV[52];
  703.     vs_top=(vs_base=base+0)+1;
  704.     Lerror();
  705.     return;
  706. }
  707. /*    function definition for DM-KEY-NOT-ALLOWED    */
  708.  
  709. static L9()
  710. {    register object *base=vs_base;
  711.     register object *sup=base+VM11;
  712.     vs_reserve(VM11);
  713.     check_arg(1);
  714.     vs_top=sup;
  715. TTL:;
  716.     base[1]= VV[53];
  717.     base[2]= base[0];
  718.     vs_top=(vs_base=base+1)+2;
  719.     Lerror();
  720.     return;
  721. }
  722. /*    function definition for FIND-DOC    */
  723.  
  724. static L10()
  725. {    register object *base=vs_base;
  726.     register object *sup=base+VM12;
  727.     vs_reserve(VM12);
  728.     check_arg(2);
  729.     vs_top=sup;
  730. TTL:;
  731.     if(!(endp(base[0]))){
  732.     goto T409;}
  733.     base[2]= Cnil;
  734.     base[3]= Cnil;
  735.     base[4]= Cnil;
  736.     vs_base=base+2;vs_top=base+5;
  737.     return;
  738. T409:;
  739.     base[3]= car(base[0]);
  740.     vs_top=(vs_base=base+3)+1;
  741.     Lmacroexpand();
  742.     vs_top=sup;
  743.     base[2]= vs_base[0];
  744.     if(!(type_of(base[2])==t_string)){
  745.     goto T417;}
  746.     if(endp(cdr(base[0]))){
  747.     goto T419;}
  748.     if((base[1])==Cnil){
  749.     goto T420;}
  750. T419:;
  751.     base[3]= Cnil;
  752.     base[4]= Cnil;
  753.     base[5]= make_cons(base[2],cdr(base[0]));
  754.     vs_base=base+3;vs_top=base+6;
  755.     return;
  756. T420:;
  757.     base[4]= cdr(base[0]);
  758.     base[5]= Ct;
  759.     vs_top=(vs_base=base+4)+2;
  760.     L10();
  761.     Llist();
  762.     vs_top=sup;
  763.     base[3]= vs_base[0];
  764.     base[4]= car(base[3]);
  765.     base[5]= cadr(base[3]);
  766.     base[6]= caddr(base[3]);
  767.     base[7]= base[2];
  768.     base[8]= base[5];
  769.     base[9]= base[6];
  770.     vs_base=base+7;vs_top=base+10;
  771.     return;
  772. T417:;
  773.     if(!(type_of(base[2])==t_cons)){
  774.     goto T438;}
  775.     if(!(car(base[2])==VV[21])){
  776.     goto T438;}
  777.     base[4]= cdr(base[0]);
  778.     base[5]= base[1];
  779.     vs_top=(vs_base=base+4)+2;
  780.     L10();
  781.     Llist();
  782.     vs_top=sup;
  783.     base[3]= vs_base[0];
  784.     base[4]= car(base[3]);
  785.     base[5]= cadr(base[3]);
  786.     base[6]= caddr(base[3]);
  787.     base[7]= base[4];
  788.     base[8]= make_cons(base[2],base[5]);
  789.     base[9]= base[6];
  790.     vs_base=base+7;vs_top=base+10;
  791.     return;
  792. T438:;
  793.     base[3]= Cnil;
  794.     base[4]= Cnil;
  795.     base[5]= make_cons(base[2],cdr(base[0]));
  796.     vs_base=base+3;vs_top=base+6;
  797.     return;
  798. }
  799. /*    function definition for FIND-DECLARATIONS    */
  800.  
  801. static L11()
  802. {    register object *base=vs_base;
  803.     register object *sup=base+VM13;
  804.     vs_reserve(VM13);
  805.     check_arg(1);
  806.     vs_top=sup;
  807. TTL:;
  808.     if(!(endp(base[0]))){
  809.     goto T456;}
  810.     base[1]= Cnil;
  811.     base[2]= Cnil;
  812.     vs_base=base+1;vs_top=base+3;
  813.     return;
  814. T456:;
  815.     base[2]= car(base[0]);
  816.     vs_top=(vs_base=base+2)+1;
  817.     Lmacroexpand();
  818.     vs_top=sup;
  819.     base[1]= vs_base[0];
  820.     if(!(type_of(base[1])==t_string)){
  821.     goto T463;}
  822.     if(!(endp(cdr(base[0])))){
  823.     goto T466;}
  824.     base[2]= Cnil;
  825.     base[3]= make_cons(base[1],Cnil);
  826.     vs_base=base+2;vs_top=base+4;
  827.     return;
  828. T466:;
  829.     base[3]= cdr(base[0]);
  830.     vs_top=(vs_base=base+3)+1;
  831.     L11();
  832.     Llist();
  833.     vs_top=sup;
  834.     base[2]= vs_base[0];
  835.     base[3]= car(base[2]);
  836.     base[4]= cadr(base[2]);
  837.     base[5]= make_cons(base[1],base[3]);
  838.     base[6]= base[4];
  839.     vs_base=base+5;vs_top=base+7;
  840.     return;
  841. T463:;
  842.     if(!(type_of(base[1])==t_cons)){
  843.     goto T478;}
  844.     if(!(car(base[1])==VV[21])){
  845.     goto T478;}
  846.     base[3]= cdr(base[0]);
  847.     vs_top=(vs_base=base+3)+1;
  848.     L11();
  849.     Llist();
  850.     vs_top=sup;
  851.     base[2]= vs_base[0];
  852.     base[3]= car(base[2]);
  853.     base[4]= cadr(base[2]);
  854.     base[5]= make_cons(base[1],base[3]);
  855.     base[6]= base[4];
  856.     vs_base=base+5;vs_top=base+7;
  857.     return;
  858. T478:;
  859.     base[2]= Cnil;
  860.     base[3]= make_cons(base[1],cdr(base[0]));
  861.     vs_base=base+2;vs_top=base+4;
  862.     return;
  863. }
  864.